A. Field of the Invention
This invention relates to the field of computerized information processing, and more specifically to the exclusive use of peripheral devices in a computerized network environment. Portions of this patent document may contain material that is subject to copyright protection. The copyright owner has no objection to the facsimile reproduction by anyone of the patent document or the patent disclosure as it appears in the Patent and Trademark Office file or records, but otherwise reserves all copyright rights whatsoever.
Sun, Sun Microsystems, the Sun logo, Solaris, xe2x80x9cWrite Once, Run Anywherexe2x80x9d, Java, JavaOS, JavaStation and all Java-based trademarks and logos are trademarks or registered trademarks of Sun Microsystems, Inc. in the United States and other countries. All SPARC trademarks are used under license and are trademarks of SPARC International, Inc. in the United States and other countries. Products bearing SPARC trademarks are based upon an architecture developed by Sun Microsystems, Inc.
B. Background Art
A networked computer environment comprises a number of interconnected computer systems that provided a user with various services. One of these services includes providing network wide access to peripheral devices such as microphones, speakers, modems, cameras, printers and other sharable resources that are installed on the network or the computer terminals attached to the network.
While it is beneficial to enable network users to share network peripherals, it is also important to maintain data integrity, and confidentiality of information processed by these peripheral devices for each user. For example, a user may use a microphone linked to his computer to record confidential voice messages. It would be undesirable to allow other users to access the data being processed by the microphone at the same time as another user is utilizing it for confidential purposes. A method is needed to control the number of users that can concurrently utilize a peripheral device in a computer network. Problems relating to resource sharing in a computerized network environment can be better understood from a summary of a general description of computerized networks and communication protocols, provided below.
Networks
In modern computing environments, it is commonplace to employ multiple computers or workstations linked together in a network to communicate between, and share data with, network users. A network also may include resources, such as printers, modems, file servers, etc., and may also include services, such as electronic mail.
A network can be a small system that is physically connected by cables or via wireless communication (a local area network or xe2x80x9cLANxe2x80x9d), or several separate networks can be connected together to form a larger network (a wide area network or xe2x80x9cWANxe2x80x9d). Other types of networks include the Internet, telcom networks, the world wide web (WWW), intranets, extranets, wireless networks, and other networks over which electronic, digital, and/or analog data may be communicated.
Network Communication/Data Transfer
To enable the computers on a network including the WWW to communicate with each other, a set of standardized rules for exchanging the information between the computers, referred to as a xe2x80x9cprotocolxe2x80x9d, is utilized. Transfer Protocols generally specify the data format, timing, sequencing, and error checking of data transmissions. Numerous transfer protocols are used in a networking environment. For example, one family of transfer protocols is referred to as the transmission control protocol/internet protocol (xe2x80x9cTCP/IPxe2x80x9d). The TCP/IP family of transfer protocols is the set of transfer protocols used on the Internet and on many multiplatform networks.
A method and apparatus for controlling the number of users that can concurrently utilize a peripheral device in a computer network is described. In the computer network of this invention many users can share various peripheral devices such as microphones, cameras, speakers, modems, and other resources installed on the network""s terminals. In one or more embodiments of the invention, the concurrent use of a peripheral device by multiple users is limited. In some embodiments the use may be made exclusive to one user at a time.
In one or more embodiments of the invention, to prohibit the concurrent use of a peripheral device by multiple users, a locking mechanism is utilized. The locking mechanism allows a first user that requests access to a peripheral device to maintain an exclusive lock on that device that prohibits access by other users. Once the first user has concluded using the peripheral device, the lock is released to permit another user to access the device.
In one or more embodiments of the invention, the locking mechanism is controlled by two protocols: the request and the grant protocols. These protocols establish the rules for exclusive access to network peripheral devices using a locking mechanism. In embodiments of the invention, a request for accessing a peripheral device includes parameters associated with the particular device, and a return address for the requesting terminal or program. The request is processed to verify the availability of the requested device and whether that device is capable to support the request based on the parameters specified. If these conditions are satisfied the request is granted.
In one or more embodiments of the invention, if the access request is not granted based on the parameters specified in the original request, then an attempt is made to modify those parameters. The request is then granted if the modified parameters are supported by the identified device.
The grant protocol allows the requesting user to maintain a lock on the device for exclusive use, and monitors the locking mechanism in case of any failures. For example, in one or more embodiments of the invention, if the lock on a device is not released after a user concludes the utilization of the device, the lock is released after a default period expires.